package day31;// write your code here
import java.util.Scanner;
import java.util.Stack;

/**
 * 分解因数
 * 所谓因子分解，就是把给定的正整数a，
 * 分解成若干个素数的乘积，
 * 即a = a1 x a2 × a3 x ...x an,
 * 并且1<a1 ≤ a2 s a3 s ...≤an。其中a1、a2、...、an均为素数。先给出一个整数a，请输出分解后的因子。
 */

/*// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int num = in.nextInt();
            for (int i = 1; i < num; i++) {
                int num2 = (int)num / i;
                if (isPrime(i) == true && isPrime(num2) == true){
                    if (i < num / i){
                        System.out.println(num + " = " + i + " * " + num2);
                    }
                }
            }
        }
    }

    public static boolean isPrime(int n){
        Scanner in = new Scanner(System.in);
        int x = n;
        boolean isPrime = true;
        if ( x == 1){
            isPrime = false;
        }
        for( int i = 2; i< x; i++){
            if(x % i ==0){
                isPrime = false;
                break;
            }
        }
        return isPrime;
    }
}*/
// write your code here





























public class Main2 {
    class ListNode {

        public int val;

        public ListNode next;

    }
    public static void main(String[] args) {
    }
    /**
     * 反转链表
     * 给你单链表的头节点head，请你反转链表，并返回反转后的链表
     */
//    private static ListNode reverse(ListNode head){
//        ListNode cur = head;
//        ListNode put = null;
//        ListNode newCur = null;
//        Stack<ListNode> stack = new Stack<>();
//        stack.push(cur);
//        while (cur != null){
//            stack.push(cur.next);
//            cur = cur.next;
//        }
//        while (stack.empty()){
//            newCur.next = stack.pop();
//            put.next = stack.pop();
//        }
//        return put.next;
//    }
    private static ListNode reverse(ListNode head) {
        ListNode prev = null;
        while (head != null) {
            ListNode temp = head.next;
            head.next = prev;
            prev = head;
            head = temp;
        }
        return prev;
    }
}






















